package com.cyt.work.kwmanagement.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.work.kwmanagement.model.po.KwStudentSign;
import com.cyt.work.kwmanagement.model.vo.KwStudentSignVo;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.wx.model.po.WxMember;

import java.util.List;

/**
 * 学生签到表-学生签到表Service层接口类
 *
 * @author Han Jun
 * @date 2019-12-11 15:33:49
 */
public interface KwStudentSignService extends BaseService<KwStudentSign> {

    /**
     * 分页查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    ReturnResult findPage(KwStudentSignVo kwStudentSignVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    ReturnResult findVoPage(KwStudentSignVo kwStudentSignVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @return List<KwStudentSign>
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    List<KwStudentSign> findList(KwStudentSignVo kwStudentSignVo);

    /**
     * list查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @return List<KwStudentSignVo>
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    List<KwStudentSignVo> findVoList(KwStudentSignVo kwStudentSignVo);

    /**
     * 单个对象查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @return KwStudentSign
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    KwStudentSign findOne(KwStudentSignVo kwStudentSignVo);

    /**
     * 单个对象查询
     *
     * @param kwStudentSignVo 接受参数对象
     * @return KwStudentSignVo
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    KwStudentSignVo findVoOne(KwStudentSignVo kwStudentSignVo);

    /**
     * 添加或更新
     *
     * @param kwStudentSignVo 参数接受对象
     * @param wxMember      当前用户
     * @return ReturnResult
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    ReturnResult addOrUpdate(KwStudentSignVo kwStudentSignVo, WxMember wxMember);

    /**
     * 根据条件逻辑删除
     *
     * @param kwStudentSignVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    ReturnResult remove(KwStudentSignVo kwStudentSignVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param kwStudentSignVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author Han Jun
     * @date 2019-12-11 15:33:49
     */
    ReturnResult delete(KwStudentSignVo kwStudentSignVo, SysUser sysUser);

    //批量签到的用户信息
    ReturnResult addOrUpdateAll(String applyId ,String kwKmSignMessageJson, WxMember wxMember);


}